package view;

/**
 * @author eversonpaulo
 */
import javax.swing.JOptionPane;
import java.awt.Font;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
//import Relatorio.rel_Tabelas;
import Utilitarios.TamanhoMaximoTextField;

import dao.TipoDAO;

import java.awt.Component;
import java.awt.Cursor;
import model.Tipo;

import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.plaf.basic.BasicInternalFrameUI;
import model.Tipo;

//import net.sf.jasperreports.engine.JRException;
public class frameTipo extends javax.swing.JInternalFrame {

    private DefaultTableModel modelo = new DefaultTableModel() {
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };
    String opcao = "";
    public int inutil;

    public frameTipo() {
        initComponents();
        liberarCampos(false);
        tabela();
        //Tira as barras de todos os lados da janela
        ((BasicInternalFrameUI) this.getUI()).setNorthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setSouthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setWestPane(null);
        ((BasicInternalFrameUI) this.getUI()).setEastPane(null);

        lbCodigo.setFont(new Font("Tahoma", Font.PLAIN, 11));
        // lbIncluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbAlterar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSalvar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbCancelar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbExcluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSair.setFont(new Font("Tahoma", Font.PLAIN, 11));
        relTipo1.setFont(new Font("Tahoma", Font.PLAIN, 11));
        relTipo2.setFont(new Font("Tahoma", Font.PLAIN, 11));

        lbCodigo.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbNome.setFont(new Font("Tahoma", Font.PLAIN, 11));

        ajusta_botoes();

        panelAdicionar.setVisible(false);

        monta_jTUnidade();

        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel2 = new javax.swing.JPanel();
        btPrimeiro = new javax.swing.JButton();
        btAnterior = new javax.swing.JButton();
        btProximo = new javax.swing.JButton();
        btUltimo = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        btNovo = new javax.swing.JButton();
        btEditar = new javax.swing.JButton();
        btExcluir = new javax.swing.JButton();
        btImprimir = new javax.swing.JButton();
        relTipo1 = new javax.swing.JRadioButton();
        relTipo2 = new javax.swing.JRadioButton();
        panelAdicionar = new javax.swing.JPanel();
        jtNome = new javax.swing.JTextField();
        lbNome = new javax.swing.JLabel();
        jtCodTipo = new javax.swing.JTextField();
        lbCodigo = new javax.swing.JLabel();
        jScrollPanelTabela = new javax.swing.JScrollPane();
        jTUnidade = new javax.swing.JTable();
        jPanel1 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        btGravar = new javax.swing.JButton();
        btCancelar = new javax.swing.JButton();
        btSair = new javax.swing.JButton();

        setClosable(true);
        setTitle("Gerenciamento de Tipo");
        setToolTipText("");
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btPrimeiro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff (2).png"))); // NOI18N
        btPrimeiro.setToolTipText("Primeiro Registro");
        btPrimeiro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btPrimeiroActionPerformed(evt);
            }
        });
        getContentPane().add(btPrimeiro, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 530, -1, -1));

        btAnterior.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play (2).png"))); // NOI18N
        btAnterior.setToolTipText("Registro Anterior");
        btAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAnteriorActionPerformed(evt);
            }
        });
        getContentPane().add(btAnterior, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 530, -1, -1));

        btProximo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play.png"))); // NOI18N
        btProximo.setToolTipText("Próximo Registro");
        btProximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btProximoActionPerformed(evt);
            }
        });
        getContentPane().add(btProximo, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 530, -1, -1));

        btUltimo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff.png"))); // NOI18N
        btUltimo.setToolTipText("Último Registro");
        btUltimo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btUltimoActionPerformed(evt);
            }
        });
        getContentPane().add(btUltimo, new org.netbeans.lib.awtextra.AbsoluteConstraints(700, 530, -1, -1));

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel1.setText("Tipo");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 10, 680, 30));

        btNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709290_Add.png"))); // NOI18N
        btNovo.setToolTipText("Inserir um novo registro");
        btNovo.setFocusable(false);
        btNovo.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        btNovo.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        btNovo.setMinimumSize(new java.awt.Dimension(85, 25));
        btNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btNovoActionPerformed(evt);
            }
        });
        getContentPane().add(btNovo, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 70, -1, 40));

        btEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709081_edit-file.png"))); // NOI18N
        btEditar.setToolTipText("Alterar o registro atual");
        btEditar.setFocusable(false);
        btEditar.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        btEditar.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        btEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btEditarActionPerformed(evt);
            }
        });
        getContentPane().add(btEditar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 70, -1, 40));

        btExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708641_Delete.png"))); // NOI18N
        btExcluir.setToolTipText("Excluir o registro atual");
        btExcluir.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btExcluir.setFocusable(false);
        btExcluir.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        btExcluir.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        btExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btExcluirActionPerformed(evt);
            }
        });
        getContentPane().add(btExcluir, new org.netbeans.lib.awtextra.AbsoluteConstraints(420, 70, -1, 40));

        btImprimir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709420_printer.png"))); // NOI18N
        btImprimir.setToolTipText("Imprime Relatório da Tabela Atual");
        btImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btImprimirActionPerformed(evt);
            }
        });
        getContentPane().add(btImprimir, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 70, -1, 40));

        buttonGroup1.add(relTipo1);
        relTipo1.setSelected(true);
        relTipo1.setText("Código");
        relTipo1.setToolTipText("Relatório por Código");
        getContentPane().add(relTipo1, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 80, 60, 30));

        buttonGroup1.add(relTipo2);
        relTipo2.setText("Sigla");
        relTipo2.setToolTipText("Relatório por Descrição");
        getContentPane().add(relTipo2, new org.netbeans.lib.awtextra.AbsoluteConstraints(700, 80, 80, 30));

        panelAdicionar.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder(""), "Cadastro"));
        panelAdicionar.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jtNome.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtNome.setToolTipText("Nome do tipo");
        jtNome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNomeActionPerformed(evt);
            }
        });
        panelAdicionar.add(jtNome, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 90, 540, -1));
        jtNome.getAccessibleContext().setAccessibleDescription("Nome");

        lbNome.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNome.setText("Descrição:");
        lbNome.setToolTipText("Nome");
        panelAdicionar.add(lbNome, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 70, 80, 20));

        jtCodTipo.setEditable(false);
        jtCodTipo.setBackground(new java.awt.Color(204, 204, 204));
        jtCodTipo.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jtCodTipo.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jtCodTipo.setToolTipText("Código único do tipo");
        jtCodTipo.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jtCodTipo.setDisabledTextColor(new java.awt.Color(204, 204, 204));
        jtCodTipo.setFocusable(false);
        jtCodTipo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtCodTipoActionPerformed(evt);
            }
        });
        panelAdicionar.add(jtCodTipo, new org.netbeans.lib.awtextra.AbsoluteConstraints(500, 40, 70, -1));

        lbCodigo.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbCodigo.setText("Código :");
        lbCodigo.setToolTipText("Código do tipo");
        lbCodigo.setFocusable(false);
        panelAdicionar.add(lbCodigo, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 40, 50, 20));

        getContentPane().add(panelAdicionar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 130, 600, 160));

        jTUnidade.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        jTUnidade.setToolTipText("Registro Cadastrados");
        jTUnidade.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTUnidadeMouseClicked(evt);
            }
        });
        jTUnidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTUnidadeKeyReleased(evt);
            }
        });
        jScrollPanelTabela.setViewportView(jTUnidade);

        getContentPane().add(jScrollPanelTabela, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 130, 680, 380));
        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 630, 740, 10));
        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 0, 20, 550));

        btGravar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708417_Save.png"))); // NOI18N
        btGravar.setToolTipText("Salvar alterações ou uma nova inclusão do registro");
        btGravar.setFocusable(false);
        btGravar.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        btGravar.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        btGravar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btGravarActionPerformed(evt);
            }
        });
        getContentPane().add(btGravar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 70, -1, 40));

        btCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708933_Redo.png"))); // NOI18N
        btCancelar.setToolTipText("Cancelar alterações ou a inclusão do novo registro");
        btCancelar.setFocusable(false);
        btCancelar.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        btCancelar.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        btCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelarActionPerformed(evt);
            }
        });
        getContentPane().add(btCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 70, -1, 40));

        btSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/logout_user_login_account-3222.png"))); // NOI18N
        btSair.setToolTipText("Fechar o Gerenciamento de Tipo");
        btSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSairActionPerformed(evt);
            }
        });
        getContentPane().add(btSair, new org.netbeans.lib.awtextra.AbsoluteConstraints(690, 580, -1, -1));
        btSair.getAccessibleContext().setAccessibleDescription("Fechar ");

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btPrimeiroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btPrimeiroActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

        btProximo.setEnabled(true);
        btUltimo.setEnabled(true);
        btPrimeiro.setEnabled(false);
        btAnterior.setEnabled(false);
    }//GEN-LAST:event_btPrimeiroActionPerformed

    private void btAnteriorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAnteriorActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow() - 1;
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        if ((linhaAtual - 1) < 0) {
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
        } else {
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);
        }
    }//GEN-LAST:event_btAnteriorActionPerformed

    private void btProximoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btProximoActionPerformed
        int linhaAtual, qdeLinhas;
        linhaAtual = jTUnidade.getSelectedRow() + 1;
        qdeLinhas = jTUnidade.getRowCount();

        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        if ((linhaAtual + 1) == qdeLinhas) {
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        } else {
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
        }
    }//GEN-LAST:event_btProximoActionPerformed

    private void btUltimoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btUltimoActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            linhaAtual = jTUnidade.getRowCount() - 1;
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        btProximo.setEnabled(false);
        btUltimo.setEnabled(false);
        btPrimeiro.setEnabled(true);
        btAnterior.setEnabled(true);
    }//GEN-LAST:event_btUltimoActionPerformed

    private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btNovoActionPerformed
        novoRegistro();
        btSair.setVisible(false);
    }//GEN-LAST:event_btNovoActionPerformed

    private void btEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btEditarActionPerformed
        alteraRegistro();
        btSair.setVisible(false);
    }//GEN-LAST:event_btEditarActionPerformed

    private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btGravarActionPerformed
        gravaRegistro();
    }//GEN-LAST:event_btGravarActionPerformed

    private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCancelarActionPerformed
        cancelaRegistro();
        btSair.setVisible(true);
    }//GEN-LAST:event_btCancelarActionPerformed

    private void btExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btExcluirActionPerformed
        excluiRegistro();
        btSair.setVisible(true);
    }//GEN-LAST:event_btExcluirActionPerformed

    private void btImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btImprimirActionPerformed
//        
//        ajustaCursor(0);
//
//        rel_Tabelas relat = new rel_Tabelas();
//        int val = 0;
//
//        if (relTipo1.isSelected()) {
//            val = 0;
//        }
//        if (relTipo2.isSelected()) {
//            val = 1;
//        }
//
//        try {
//            relat.gerar(val, "Cadastro de Tipo", "SETOR");
//        } catch (JRException ex) {
//            Logger.getLogger(frameTipo.class.getName()).log(Level.SEVERE, null, ex);
//        } catch (SQLException ex) {
//            Logger.getLogger(frameTipo.class.getName()).log(Level.SEVERE, null, ex);
//        } catch (ClassNotFoundException ex) {
//            Logger.getLogger(frameTipo.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        
//        ajustaCursor(1);

    }//GEN-LAST:event_btImprimirActionPerformed

    private void jTUnidadeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTUnidadeMouseClicked
        if (opcao.equals("")) {
            int linhaAtual;
            linhaAtual = jTUnidade.getSelectedRow();
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }
    }//GEN-LAST:event_jTUnidadeMouseClicked

    private void jTUnidadeKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTUnidadeKeyReleased
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow();
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        Atribui_Campos();
    }//GEN-LAST:event_jTUnidadeKeyReleased

    private void jtCodTipoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtCodTipoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtCodTipoActionPerformed

    private void jtNomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNomeActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNomeActionPerformed

    private void btSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSairActionPerformed
        saiTela();
    }//GEN-LAST:event_btSairActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btAnterior;
    private javax.swing.JButton btCancelar;
    private javax.swing.JButton btEditar;
    private javax.swing.JButton btExcluir;
    private javax.swing.JButton btGravar;
    private javax.swing.JButton btImprimir;
    private javax.swing.JButton btNovo;
    private javax.swing.JButton btPrimeiro;
    private javax.swing.JButton btProximo;
    private javax.swing.JButton btSair;
    private javax.swing.JButton btUltimo;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPanelTabela;
    private javax.swing.JTable jTUnidade;
    private javax.swing.JTextField jtCodTipo;
    private javax.swing.JTextField jtNome;
    private javax.swing.JLabel lbCodigo;
    private javax.swing.JLabel lbNome;
    private javax.swing.JPanel panelAdicionar;
    private javax.swing.JRadioButton relTipo1;
    private javax.swing.JRadioButton relTipo2;
    // End of variables declaration//GEN-END:variables

    public void saiTela() {
        frameTipo.this.dispose();
    }

    public void ajustaCursor(int tipo) {
        Cursor cursor;

        if (tipo == 0) {
            cursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
        } else {
            cursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
        }

        setCursor(cursor);

    }

    public void ajusta_botoes() {
        if (opcao.equals("")) {
            btGravar.setEnabled(false);
            btCancelar.setEnabled(false);
            btNovo.setEnabled(true);
            btEditar.setEnabled(true);
            btExcluir.setEnabled(true);

//            lbSalvar.setEnabled(false);
//            lbCancelar.setEnabled(false);
//            lbIncluir.setEnabled(true);
//            lbAlterar.setEnabled(true);
//            lbExcluir.setEnabled(true);
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);

        } else {
            btGravar.setEnabled(true);
            btCancelar.setEnabled(true);
            btNovo.setEnabled(false);
            btEditar.setEnabled(false);
            btExcluir.setEnabled(false);

//            lbSalvar.setEnabled(true);
//            lbCancelar.setEnabled(true);
//            lbIncluir.setEnabled(false);
//            lbAlterar.setEnabled(false);
//            lbExcluir.setEnabled(false);
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        }
    }

    public void tabela() {
        jTUnidade.setModel(modelo);

        modelo.addColumn("Código");
        modelo.addColumn("Nome");

        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(25);
        jTUnidade.getColumnModel().getColumn(1).setPreferredWidth(80);

        //codigo para esconder uma coluna na JTable
        //Esconder alguma coluna: No Caso a Primeira Coluna
        jTUnidade.getColumnModel().getColumn(0).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(0).setMaxWidth(0);

    }

    private void monta_jTUnidade() {
//      Fachada f = new Fachada();
        limpaCampos();

        TipoDAO udao = new TipoDAO();

        ArrayList<Tipo> lista = new ArrayList<Tipo>();

        modelo.setNumRows(0);
        lista = udao.findAll2();
        for (int i = 0; i < lista.size(); i++) {
            modelo.addRow(new Object[]{lista.get(i).getId_Tipo(),
                lista.get(i).getNome(),});
        }
    }

    private void Atribui_Campos() {
        jtCodTipo.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 0).toString());
        jtNome.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 1));

    }

    public void exibePainelCadastro(boolean val) {
        //organiza os paineis
        panelAdicionar.setVisible(val);
        jScrollPanelTabela.setVisible(!val);

        //organiza os botões
        btNovo.setVisible(!val);
        btEditar.setVisible(!val);
        btExcluir.setVisible(!val);
        btAnterior.setVisible(!val);
        btPrimeiro.setVisible(!val);
        btProximo.setVisible(!val);
        btUltimo.setVisible(!val);
        btImprimir.setVisible(!val);
        relTipo1.setVisible(!val);
        relTipo2.setVisible(!val);
    }

    public void limpaCampos() {
        jtCodTipo.setText("");
        jtNome.setText("");
    }

    private void novoRegistro() {
        liberarCampos(true);

        exibePainelCadastro(true);

        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount() - 1;
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        opcao = "incluir";
        jTUnidade.setEnabled(false);
        ajusta_botoes();
        //Deixar os registros em branco
        jtCodTipo.setText(null);

        jtNome.setText(null);

    }

    private boolean validarCampos() {

        if ((jtNome.getText().trim().equals("")) || (jtNome.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo Nome não pode ficar em branco. Verifique!!!");
            jtNome.requestFocus();
            return false;
        }
        return true;
    }

    private void alteraRegistro() {
        if (!(jtCodTipo.getText().equals(""))) {

            exibePainelCadastro(true);

            liberarCampos(true);
            opcao = "alterar";
            jTUnidade.setEnabled(false);
            ajusta_botoes();

            jtNome.setEditable(true);
        }
    }

    public void liberarCampos(boolean val) {

        jtNome.setEditable(val);

    }

    private void gravaRegistro() {

        String mens = "";
        int valor = 0;
        Tipo t = new Tipo();

        TipoDAO tdao = new TipoDAO();

        while (validarCampos() == true) {

            t.setNome(jtNome.getText());

            if (opcao.equals("incluir")) {
                tdao.incluir(t);
                valor = 1;
                exibePainelCadastro(false);

                mens = "Registro Gravado com Sucesso!!!";
            } else if (opcao.equals("alterar")) {
                t.setId_Tipo(Integer.parseInt(jtCodTipo.getText()));
                tdao.alterar(t);
                valor = 1;
                mens = "Registro Alterado com Sucesso!!!";
                exibePainelCadastro(false);
            }

            if (valor > 0) {
                //JOptionPane.showMessageDialog(null,mens);
            } else {
                JOptionPane.showMessageDialog(null, "Não foi possivel " + opcao + " o registro. Verifique!!!");
                int linhaAtual;
                linhaAtual = jTUnidade.getRowCount();
                if (linhaAtual > 0) {
                    jTUnidade.changeSelection(0, 0, false, false);
                    Atribui_Campos();
                }
            }

            opcao = "";
            jTUnidade.setEnabled(true);
            jtCodTipo.setEditable(false);
            monta_jTUnidade();
            ajusta_botoes();
            liberarCampos(false);
            break;
        }

    }

    private void cancelaRegistro() {
        liberarCampos(false);

        exibePainelCadastro(false);

        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

        opcao = "";
        jtCodTipo.setEditable(false);
        jTUnidade.setEnabled(true);
        ajusta_botoes();
    }

    private void excluiRegistro() {
        int valor = 0;

        TipoDAO f = new TipoDAO();
        Tipo s = new Tipo();

        s.setId_Tipo(Integer.parseInt(jtCodTipo.getText()));

        String nome = "Tem Certeza em Deletar Este Registro desse Tipo?  a- " + jtNome.getText();
        int opc = JOptionPane.showConfirmDialog(null, nome, "Exclusão", JOptionPane.YES_NO_OPTION);

        if (opc == JOptionPane.YES_OPTION) {
            f.remover2(s);
            valor = 1;

            if (valor > 0) {
                JOptionPane.showMessageDialog(null, "Registro excluido com sucesso!!!");
            } else {
                JOptionPane.showMessageDialog(null, "Erro na Exclusão - Verifique!!!");
            }
        }
        monta_jTUnidade();
        cancelaRegistro();
    }
}
